package org.llc.flink.study

object Explain {
  def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3)
    // :: 用于的是向队列的头部追加数据,产生新的列表, x::list,x就会添加到list的头部
    println(4 :: list) //输出: List(4, 1, 2, 3)

    // .:: 这个是list的一个方法;作用和上面的一样,把元素添加到头部位置; list.::(x);
    println(list.::(5)) //输出: List(5, 1, 2, 3)

    // :+ 用于在list尾部追加元素; list :+ x;
    println(list :+ 6) //输出: List(1, 2, 3, 6)

    // +: 用于在list的头部添加元素;
    val list2 = "A" +: "B" +: Nil //Nil Nil是一个空的List,定义为List[Nothing]
    println(list2) //输出: List(A, B)

    // ::: 用于连接两个List类型的集合 list ::: list2
    println(list ::: list2) //输出: List(1, 2, 3, A, B)

    // ++ 用于连接两个集合，list ++ list2
    println(list ++ list2) //输出: List(1, 2, 3, A, B)

  }

  //返回函数类型
  def double(x: Int, y: Int): Int = x * 2 + y

  var y: (Int, Int) => Int = double

  //匿名函数
  var xx = (x: Int) => x + 1

  //case
  val t = 10;
  val t1 = 20

  val max = t > t1 match {
    case true => t
    case false => t1
  }

  //传名参数
  def doubles(x: => Int) = x * 2

  def f(x: Int): Int = x

  doubles(f(3))


}
